/*
 * @(#)C.java 2019年10月24日
 *
 * Copyright (c) 2010 by rayootech.com. All rights reserved.
 */
package com.nuctech.common.bean;

import javax.servlet.http.HttpServletResponse;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 响应信息错误码枚举
 * 
 * @author lilu
 * @date 2019年10月24日
 * @since 1.0.0
 */
@Getter
@AllArgsConstructor
public enum C implements IC{
	
	/**
	 * 操作成功
	 */
	SUCCESS(HttpServletResponse.SC_OK, "操作成功"),
	/**
	 * 操作失败
	 */
	FAILURE(HttpServletResponse.SC_BAD_REQUEST, "操作失败"),
	/**
	 * 接口超时，系统已熔断该接口
	 */
	INTERFACE_FAILURE(HttpServletResponse.SC_REQUEST_TIMEOUT, "接口超时，系统已熔断该接口"),
	/**
	 * LICENSE证书无效
	 */
	LICENSE_FAIL(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "您的证书无效，请核查服务器是否取得授权或联系服务提供商"),
	/**
	 * 无法识别的错误
	 */
	UN_RECOGNIZED_ERROR(HttpServletResponse.SC_BAD_REQUEST, "无法识别的错误"),
	/**
	 * 用户名不能为空
	 */
	NULL_USERNAME(HttpServletResponse.SC_UNAUTHORIZED, "用户名不能为空"),
	/**
	 * 未查询到用户信息
	 */
	NULL_USERINFO(HttpServletResponse.SC_UNAUTHORIZED, "未查询到用户信息"),
	/**
	 * 请求资源未授权
	 */
	UN_AUTHORIZED(HttpServletResponse.SC_UNAUTHORIZED, "请求资源未授权"),
	/**
	 * 404 没找到请求
	 */
	NOT_FOUND(HttpServletResponse.SC_NOT_FOUND, "404 没找到请求"),
	/**
	 * 消息不能读取
	 */
	MSG_NOT_READABLE(HttpServletResponse.SC_BAD_REQUEST, "消息不能读取"),
	/**
	 * 不支持当前请求方法
	 */
	METHOD_NOT_SUPPORTED(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "不支持当前请求方法"),
	/**
	 * 不支持当前媒体类型
	 */
	MEDIA_TYPE_NOT_SUPPORTED(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, "不支持当前媒体类型"),
	/**
	 * 请求被拒绝
	 */
	REQ_REJECT(HttpServletResponse.SC_FORBIDDEN, "请求被拒绝"),
	/**
	 * 请求过多
	 */
	TOO_MANY_REQ(429, "请求过多"),
	/**
	 * 服务器异常
	 */
	INTERNAL_SERVER_ERROR(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "服务器异常"),
	/**
	 * 缺少必要的请求参数
	 */
	PARAM_MISS(HttpServletResponse.SC_BAD_REQUEST, "缺少必要的请求参数"),
	/**
	 * 请求参数类型错误
	 */
	PARAM_TYPE_ERROR(HttpServletResponse.SC_BAD_REQUEST, "请求参数类型错误"),
	/**
	 * 请求参数绑定错误
	 */
	PARAM_BIND_ERROR(HttpServletResponse.SC_BAD_REQUEST, "请求参数绑定错误"),
	/**
	 * 参数校验失败
	 */
	PARAM_VALID_ERROR(HttpServletResponse.SC_BAD_REQUEST, "参数校验失败"),
	/**
	 * 无效的客户端信息
	 */
	CLIENTID_INVALID(402, "无效的客户端信息"),
	/**
	 * 无效的令牌
	 */
	TOKEN_INVALID(401, "无效的令牌"), 
	/**
	 * 令牌过期
	 */
	TOKEN_EXPIRED(406, "令牌过期"),
	/**
	 * 请求头无授权码
	 */
	TOKEN_NOT_INCLUDE(407, "请求头无授权码"),
	/**
	 * 用户未登录，请重新登录
	 */
	LOGIN_EXPIRED(600, "用户未登录，请登录"), 
	/**
	 * 用户过期
	 */
	EXCE_ACCOUNT_EXPIRED(HttpServletResponse.SC_BAD_REQUEST, "用户过期"), 
	/**
	 * 用户名或密码错误
	 */
	EXCE_BAD_CREDENTIALS(HttpServletResponse.SC_BAD_REQUEST, "用户名或密码错误"), 
	/**
	 * 密码过期
	 */
	EXCE_CREDENTIALS_EXPIRED(HttpServletResponse.SC_BAD_REQUEST, "密码过期"), 
	/**
	 * 用户被禁用
	 */
	EXCE_DISABLED(HttpServletResponse.SC_BAD_REQUEST, "用户被禁用"), 
	/**
	 * 用户被锁定
	 */
	EXCE_LOCKED(HttpServletResponse.SC_BAD_REQUEST, "用户被锁定"),
	/**
	 * 已在另一台设备登录，本次登录已下线
	 */
	USER_ACCOUNT_USE_BY_OTHERS(HttpServletResponse.SC_SEE_OTHER, "已在另一台设备登录，本次登录已下线"), 
	;

	/**
	 * code编码
	 */
	final int code;
	/**
	 * 中文信息描述
	 */
	final String message;

}
